package com.five.pojo.vo;


import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单列表视图对象（用于前端订单列表页展示）
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderListVO implements Serializable {

    private Long id;  // 订单唯一标识，用于后续查询详情等操作


    private String orderNo;  // 订单业务编号（通常是可读性强的字符串，如时间+随机数）


    private BigDecimal totalAmount;  // 订单总金额，精确到分


    private Integer orderStatus;  // 状态编码（如 1-待付款、2-已支付等，用于前端判断状态样式）


    private String orderStatusDesc;  // 状态文本（直接用于前端展示，避免前端再次转换）

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;  // 订单创建时间，用于列表排序和展示


    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime payTime;  // 若列表需要展示支付时间，可添加


    private Integer productCount;  // 订单包含的商品总数量


    private String source;  // 订单来源渠道，用于筛选展示
}